package com.example.service.siyunDaohanglanService.SiyunDaohanglanImpl;

import com.example.dao.siyunDaohanglanDao.SiyundaohanglanDao;
import com.example.pojo.siyunDaohanglanPojo.SiyunDaohanglan;
import com.example.pojo.siyunDaohanglanPojo.SiyunDaohanglanNode;
import com.example.pojo.siyunDaohanglanPojo.SiyunHeadDaohanglan;
import com.example.pojo.siyunDaohanglanPojo.SiyunHeadTiXing;
import com.example.service.siyunDaohanglanService.SiyunDaohanglanService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;
@Service
public class SiyunDaohanglanImpl implements SiyunDaohanglanService {
    @Autowired
    private SiyundaohanglanDao siyundaohanglanDao;
    @Override
    public List<SiyunDaohanglanNode> getDaohanglanAll() {
        List<SiyunDaohanglan> daohanglanAll = siyundaohanglanDao.getDaohanglanAll();
        List<SiyunDaohanglanNode> siyunDaohanglanNodes = getNode(daohanglanAll,0);
        return siyunDaohanglanNodes;
    }

    @Override
    public SiyunHeadDaohanglan getHead(SiyunHeadDaohanglan siyunHeadDaohanglan) {
        return siyundaohanglanDao.getHead(siyunHeadDaohanglan);
    }

    @Override
    public SiyunHeadTiXing getTixing() {
        return siyundaohanglanDao.getTixing();
    }

    /*
    * 把左侧导航栏的数据遍历封装起来
    * 通过pid得知谁是谁的子节点
    * 李宗儒
    * 2022.11.10
    * */
    public List<SiyunDaohanglanNode> getNode(List<SiyunDaohanglan> all,Integer pid){
        List<SiyunDaohanglanNode> zhouceNodes = new ArrayList<>();
        for(SiyunDaohanglan siyunDaohanglan:all){
            if(siyunDaohanglan.getSiyunPid() == pid) {
                SiyunDaohanglanNode a = new SiyunDaohanglanNode();
                a.setSiyunLujing(siyunDaohanglan.getSiyunLujing());
                a.setSiyunQuanxian(siyunDaohanglan.getSiyunQuanxian());
                a.setSiyunId(siyunDaohanglan.getSiyunId());
                a.setSiyunName(siyunDaohanglan.getSiyunName());
                a.setSiyunImg(siyunDaohanglan.getSiyunImg());
                List<SiyunDaohanglanNode> node1 = getNode(all, siyunDaohanglan.getSiyunId());
                a.setChildren(node1);
                zhouceNodes.add(a);
            }
        }
        return zhouceNodes;
    }
}
